package com.cy.pj.modules.service.impl;

import com.cy.pj.common.bo.PageObject;
import com.cy.pj.modules.entity.Client;
import com.cy.pj.modules.mapper.ClientMapper;
import com.cy.pj.modules.service.IClientService;
import com.github.pagehelper.Page;
import com.github.pagehelper.PageHelper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;

import java.util.List;

/**
 * 用户基础信息Service业务层处理
 *
 * @author kiven
 * @date 2023-02-09
 */
@Service
public class ClientServiceImpl implements IClientService
{
    @Autowired
    private ClientMapper clientMapper;

    @Value("${fz.pageHelper.pageSize}")
    private Integer pageSize;
    /**
     * 查询用户基础信息
     *
     * @param id 用户基础信息ID
     * @return 用户基础信息
     */
    @Override
    public Client selectClientById(Long id)
    {
        return clientMapper.selectClientById(id);
    }

    /**
     * 查询用户基础信息列表
     *
     * @param client 用户基础信息
     * @return 用户基础信息
     */
    @Override
    public PageObject<Client> selectClientList(Client client,Integer pageCurrent)
    {
        //1.参数校验
        if (pageCurrent == null || pageCurrent < 1) {
            throw new IllegalArgumentException("页码值无效");
        }
        //2.设置分页参数
        String orderBy = "id desc";
        Page<Client> page = PageHelper.startPage(pageCurrent, pageSize, orderBy);
        //3.查询当前页记录
        List<Client> list =clientMapper.selectClientList(client);
        return new PageObject<>(list, (int) page.getTotal(), page.getPages(), pageSize, pageCurrent);
    }

    /**
     * 新增用户基础信息
     *
     * @param client 用户基础信息
     * @return 结果
     */
    @Override
    public int insertClient(Client client)
    {
        return clientMapper.insertClient(client);
    }

    /**
     * 修改用户基础信息
     *
     * @param client 用户基础信息
     * @return 结果
     */
    @Override
    public int updateClient(Client client)
    {
        return clientMapper.updateClient(client);
    }

    /**
     * 删除用户基础信息对象
     *
     * @param ids 需要删除的数据ID
     * @return 结果
     */
    @Override
    public int deleteClientByIds(String ids)
    {
        return clientMapper.deleteClientByIds(ids.split(","));
    }

    /**
     * 删除用户基础信息信息
     *
     * @param id 用户基础信息ID
     * @return 结果
     */
    @Override
    public int deleteClientById(Long id)
    {
        return clientMapper.deleteClientById(id);
    }
}
